<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Class template hyperexponential_distribution</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../../boost_random/reference.html#doxygen.headers.hyperexponential__distribution_8hpp" title="Header &lt;boost/random/hyperexponential_distribution.hpp&gt;">
<link rel="prev" href="classboost_1_1random_1_1geometric__distribution_1_1param__type.html" title="Class param_type">
<link rel="next" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="classboost_1_1random_1_1geometric__distribution_1_1param__type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_random/reference.html#doxygen.headers.hyperexponential__distribution_8hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Class template hyperexponential_distribution</span></h2>
<p>boost::random::hyperexponential_distribution</p>
</div>
<h2 class="refsynopsisdiv-title">Synopsis</h2>
<div class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../boost_random/reference.html#doxygen.headers.hyperexponential__distribution_8hpp" title="Header &lt;boost/random/hyperexponential_distribution.hpp&gt;">boost/random/hyperexponential_distribution.hpp</a>&gt;

</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealT <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> 
<span class="keyword">class</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
  <span class="comment">// types</span>
  <span class="keyword">typedef</span> <span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aea0e0680b172602e04485f889f0ac68b"></a><span class="identifier">result_type</span><span class="special">;</span>
  <span class="keyword">typedef</span> <span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a32e5168ba965fea9b649101edf7770f5"></a><span class="identifier">input_type</span><span class="special">;</span> 

  <span class="comment">// member classes/structs/unions</span>

  <span class="keyword">class</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">{</span>
  <span class="keyword">public</span><span class="special">:</span>
    <span class="comment">// types</span>
    <span class="keyword">typedef</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad0c3ba1a952094d45e8477e479d4bc35"><span class="identifier">distribution_type</span></a><span class="special">;</span>

    <span class="comment">// <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#id-1_3_32_5_6_19_1_1_1_3_3-bb">public member functions</a></span>
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a7beaa29e8c65d77683b5949cdfb8724c"><span class="identifier">param_type</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbIterT<span class="special">,</span> <span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
      <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a2b085b721eedfec42fe93ee7fe59f74f"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">ProbIterT</span><span class="special">,</span> <span class="identifier">ProbIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbRangeT<span class="special">,</span> <span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> 
      <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad6c8123b46bcf09daa3eb8740d1b14d5"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">ProbRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
                 <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">ProbRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
      <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad319c36fba4c625327a54df2ff0397dc"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">RateIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">,</span> 
                 <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateIterT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aac157c92b8943ee8a2eef8a1520ec82b"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a198751fd58af370ab7065451f9828cec"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1abeeb8500d8d66be9ee1a73e9ebfc9d3c"><span class="identifier">param_type</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a0be87b1b008134ef6a923a5f6775a1ec"><span class="identifier">probabilities</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a3d50b4e6b96b5f62fc2f10667b1f5092"><span class="identifier">rates</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>

    <span class="comment">// <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#id-1_3_32_5_6_19_1_1_1_3_4-bb">friend functions</a></span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
      <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
      <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
      <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">bool</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a"><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
    <span class="keyword">bool</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2"><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="special">}</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#id-1_3_32_5_6_19_1_1_1_6-bb">public member functions</a></span>
  <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a24d4b4b604013622d320fb1e5a9cd8f1"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbIterT<span class="special">,</span> <span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4dee1c0522210d48fb52632bd60b26a4"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">ProbIterT</span><span class="special">,</span> <span class="identifier">ProbIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbRangeT<span class="special">,</span> <span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a203748c2c7193830b7e8881dba827900"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">ProbRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
                                  <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">ProbRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a1e2aebcff5262696573b9e01a2466297"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">RateIterT</span><span class="special">,</span> <span class="identifier">RateIterT</span><span class="special">,</span> 
                                  <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateIterT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4848cda473fed3e6235b5a8f83054e0c"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">explicit</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a2dcf3ad5944f38f3bb8c853525b4dd25"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aedbc4cec021842cbaf9c5c12433ad825"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
                                <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a3ea25e56ee9e621f09be6deb284a6e92"><span class="identifier">hyperexponential_distribution</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG<span class="special">&gt;</span> <span class="identifier">RealT</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a87691d35ce91ee743ed144ee2e3b3879"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">URNG</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG<span class="special">&gt;</span> <span class="identifier">RealT</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ab8cf131a35d675fe3837a17c4b70873b"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">URNG</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a13e5b222112f26735031a8631a5b833b"><span class="identifier">num_phases</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae019614cc9cd91ec2dff306459289437"><span class="identifier">probabilities</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a91e61293608aa905762ad27262cb48af"><span class="identifier">rates</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="identifier">RealT</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad274da384a55786719dd3ecab8967f84"><span class="identifier">min</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="identifier">RealT</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae2b2e1ce0c3d4ce7ba36cfe49c9c6b88"><span class="identifier">max</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a0ae4ddc40714698ef0f77af68e825914"><span class="identifier">param</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="keyword">void</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a9179d63f1a4b7cb8c2ef8f440e2c1c03"><span class="identifier">param</span></a><span class="special">(</span><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">void</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a64670d7145c552ae917e439054c51319"><span class="identifier">reset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#id-1_3_32_5_6_19_1_1_1_7-bb">friend functions</a></span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aa06dc41983022d0c078cf8524420d963"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> 
               <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
    <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad02f9fcbccc124a8d9b3444166860641"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> 
               <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">bool</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a6657878b0ad3c40bb3d25b4ff7da6c3b"><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">,</span> 
                  <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">bool</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html#doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a8ec524e4c493bb9376cf0df0898f6058"><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">,</span> 
                  <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="id-1.3.32.5.6.18.3.4"></a><h2>Description</h2>
<p>The hyperexponential distribution is a real-valued continuous distribution with two parameters, the <span class="emphasis"><em>phase probability vector</em></span> <code class="computeroutput">probs</code> and the <span class="emphasis"><em>rate vector</em></span> <code class="computeroutput">rates</code>.</p>
<p>A <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase hyperexponential distribution is a mixture of <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> exponential distributions. For this reason, it is also referred to as <span class="emphasis"><em>mixed exponential distribution</em></span> or <span class="emphasis"><em>parallel <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase exponential distribution</em></span>.</p>
<p>A <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase hyperexponential distribution is characterized by two parameters, namely a <span class="emphasis"><em>phase probability vector</em></span> <span class="inlinemediaobject"><img src="../../images/random//form_16.png"></span> and a <span class="emphasis"><em>rate vector</em></span> <span class="inlinemediaobject"><img src="../../images/random//form_17.png"></span>.</p>
<p>A <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase hyperexponential distribution is frequently used in <span class="emphasis"><em>queueing theory</em></span> to model the distribution of the superposition of <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> independent events, like, for instance, the service time distribution of a queueing station with <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> servers in parallel where the <span class="inlinemediaobject"><img src="../../images/random//form_18.png"></span>-th server is chosen with probability <span class="inlinemediaobject"><img src="../../images/random//form_19.png"></span> and its service time distribution is an exponential distribution with rate <span class="inlinemediaobject"><img src="../../images/random//form_20.png"></span> (Allen,1990; Papadopolous et al.,1993; Trivedi,2002).</p>
<p>For instance, CPUs service-time distribution in a computing system has often been observed to possess such a distribution (Rosin,1965). Also, the arrival of different types of customer to a single queueing station is often modeled as a hyperexponential distribution (Papadopolous et al.,1993). Similarly, if a product manufactured in several parallel assemply lines and the outputs are merged, the failure density of the overall product is likely to be hyperexponential (Trivedi,2002).</p>
<p>Finally, since the hyperexponential distribution exhibits a high Coefficient of Variation (CoV), that is a CoV &gt; 1, it is especially suited to fit empirical data with large CoV (Feitelson,2014; Wolski et al.,2013) and to approximate <span class="emphasis"><em>long-tail probability distributions</em></span> (Feldmann et al.,1998).</p>
<p>See (Boost,2014) for more information and examples.</p>
<p>A <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase hyperexponential distribution has a probability density function   </p>
<div class="equation">
<a name="id-1.3.32.5.6.18.3.4.9.2"></a><p class="title"><b>Equation 31.1. </b></p>
<div class="equation-contents"><div class="mediaobject" align="center"><img src="../../images/random//form_21.png" align="middle"></div></div>
</div>
<p><br class="equation-break"> where:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> is the <span class="emphasis"><em>number of phases</em></span> and also the size of the input vector parameters,</p></li>
<li class="listitem"><p><span class="inlinemediaobject"><img src="../../images/random//form_16.png"></span> is the <span class="emphasis"><em>phase probability vector</em></span> parameter, and</p></li>
<li class="listitem"><p><span class="inlinemediaobject"><img src="../../images/random//form_17.png"></span> is the <span class="emphasis"><em>rate vector</em></span> parameter.</p></li>
</ul></div>
<p>
Given a <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span>-phase hyperexponential distribution with phase probability vector <span class="inlinemediaobject"><img src="../../images/random//form_22.png"></span> and rate vector <span class="inlinemediaobject"><img src="../../images/random//form_23.png"></span>, the random variate generation algorithm consists of the following steps (Tyszer,1999):</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>Generate a random variable <span class="inlinemediaobject"><img src="../../images/random//form_24.png"></span> uniformly distribution on the interval <span class="inlinemediaobject"><img src="../../images/random//form_25.png"></span>.</p></li>
<li class="listitem"><p>Use <span class="inlinemediaobject"><img src="../../images/random//form_24.png"></span> to select the appropriate <span class="inlinemediaobject"><img src="../../images/random//form_20.png"></span> (e.g., the <span class="emphasis"><em>alias method</em></span> can possibly be used for this step).</p></li>
<li class="listitem"><p>Generate an exponentially distributed random variable <span class="inlinemediaobject"><img src="../../images/random//form_26.png"></span> with rate parameter <span class="inlinemediaobject"><img src="../../images/random//form_20.png"></span>.</p></li>
<li class="listitem"><p>Return <span class="inlinemediaobject"><img src="../../images/random//form_26.png"></span>.</p></li>
</ol></div>
<p>
References:</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>A.O. Allen, <span class="emphasis"><em>Probability, Statistics, and Queuing Theory with Computer Science Applications, Second Edition</em></span>, Academic Press, 1990.</p></li>
<li class="listitem"><p>Boost C++ Libraries, <span class="emphasis"><em>Boost.Math / Statistical Distributions: Hyperexponential Distribution</em></span>, Online: <a href="http://www.boost.org/doc/libs/release/libs/math/doc/html/dist.html" target="_top">http://www.boost.org/doc/libs/release/libs/math/doc/html/dist.html</a> , 2014.</p></li>
<li class="listitem"><p>D.G. Feitelson, <span class="emphasis"><em>Workload Modeling for Computer Systems Performance Evaluation</em></span>, Cambridge University Press, 2014</p></li>
<li class="listitem"><p>A. Feldmann and W. Whitt, <span class="emphasis"><em>Fitting mixtures of exponentials to long-tail distributions to analyze network performance models</em></span>, Performance Evaluation 31(3-4):245, doi:10.1016/S0166-5316(97)00003-5, 1998.</p></li>
<li class="listitem"><p>H.T. Papadopolous, C. Heavey and J. Browne, <span class="emphasis"><em>Queueing Theory in Manufacturing Systems Analysis and Design</em></span>, Chapman &amp; Hall/CRC, 1993, p. 35.</p></li>
<li class="listitem"><p>R.F. Rosin, <span class="emphasis"><em>Determining a computing center environment</em></span>, Communications of the ACM 8(7):463-468, 1965.</p></li>
<li class="listitem"><p>K.S. Trivedi, <span class="emphasis"><em>Probability and Statistics with Reliability, Queueing, and Computer Science Applications</em></span>, John Wiley &amp; Sons, Inc., 2002.</p></li>
<li class="listitem"><p>J. Tyszer, <span class="emphasis"><em>Object-Oriented Computer Simulation of Discrete-Event Systems</em></span>, Springer, 1999.</p></li>
<li class="listitem"><p>Wikipedia, <span class="emphasis"><em>Hyperexponential Distribution</em></span>, Online: <a href="http://en.wikipedia.org/wiki/Hyperexponential_distribution" target="_top">http://en.wikipedia.org/wiki/Hyperexponential_distribution</a> , 2014.</p></li>
<li class="listitem"><p>Wolfram Mathematica, <span class="emphasis"><em>Hyperexponential Distribution</em></span>, Online: <a href="http://reference.wolfram.com/language/ref/HyperexponentialDistribution.html" target="_top">http://reference.wolfram.com/language/ref/HyperexponentialDistribution.html</a> , 2014.</p></li>
</ol></div>
<p>
</p>
<p>Marco Guazzone (<a href="mailto:marco.guazzone@gmail.com" target="_top">marco.guazzone@gmail.com</a>) </p>
<p>

</p>
<div class="refsect2">
<a name="id-1.3.32.5.6.18.3.4.10"></a><h3>
<a name="id-1_3_32_5_6_19_1_1_1_6-bb"></a><code class="computeroutput">hyperexponential_distribution</code> public member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a24d4b4b604013622d320fb1e5a9cd8f1"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a 1-phase <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> (i.e., an exponential distribution) with rate 1. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbIterT<span class="special">,</span> <span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4dee1c0522210d48fb52632bd60b26a4"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">ProbIterT</span> prob_first<span class="special">,</span> <span class="identifier">ProbIterT</span> prob_last<span class="special">,</span> 
                                <span class="identifier">RateIterT</span> rate_first<span class="special">,</span> <span class="identifier">RateIterT</span> rate_last<span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from the <span class="emphasis"><em>phase probability vector</em></span> and <span class="emphasis"><em>rate vector</em></span> parameters of the distribution.</p>
<p>The <span class="emphasis"><em>phase probability vector</em></span> parameter is given by the range defined by [<span class="emphasis"><em>prob_first</em></span>, <span class="emphasis"><em>prob_last</em></span>) iterator pair, and the <span class="emphasis"><em>rate vector</em></span> parameter is given by the range defined by [<span class="emphasis"><em>rate_first</em></span>, <span class="emphasis"><em>rate_last</em></span>) iterator pair.</p>
<p>

References:</p>
<div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>ISO, <span class="emphasis"><em>ISO/IEC 14882-2014: Information technology - Programming languages - C++</em></span>, 2014</p></li></ol></div>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">prob_first</code></span></p></td>
<td><p>The iterator to the beginning of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">prob_last</code></span></p></td>
<td><p>The iterator to the ending of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">rate_first</code></span></p></td>
<td><p>The iterator to the beginning of the range of non-negative real elements representing the rates. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">rate_last</code></span></p></td>
<td><p>The iterator to the ending of the range of non-negative real elements representing the rates.</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">ProbIterT</code></span></p></td>
<td><p>Must meet the requirements of <code class="computeroutput">InputIterator</code> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">RateIterT</code></span></p></td>
<td><p>Must meet the requirements of <code class="computeroutput">InputIterator</code> concept (ISO,2014,sec. 24.2.3 [input.iterators]).</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ProbRangeT<span class="special">,</span> <span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a203748c2c7193830b7e8881dba827900"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">ProbRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span> prob_range<span class="special">,</span> 
                                <span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span> rate_range<span class="special">,</span> 
                                <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">ProbRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateRangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from the <span class="emphasis"><em>phase probability vector</em></span> and <span class="emphasis"><em>rate vector</em></span> parameters of the distribution.</p>
<p>The <span class="emphasis"><em>phase probability vector</em></span> parameter is given by the range defined by <span class="emphasis"><em>prob_range</em></span>, and the <span class="emphasis"><em>rate vector</em></span> parameter is given by the range defined by <span class="emphasis"><em>rate_range</em></span>.</p>
<p>

</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>The final <code class="computeroutput">disable_if</code> parameter is an implementation detail that differentiates between this two argument constructor and the iterator-based two argument constructor described below. </p></td></tr>
</table></div>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">prob_range</code></span></p></td>
<td><p>The range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">rate_range</code></span></p></td>
<td><p>The range of positive real elements representing the rates.</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">ProbRangeT</code></span></p></td>
<td><p>Must meet the requirements of <a href="../../../../libs/range/doc/html/range/concepts.html" target="_top">Range</a> concept. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">RateRangeT</code></span></p></td>
<td><p>Must meet the requirements of <a href="../../../../libs/range/doc/html/range/concepts.html" target="_top">Range</a> concept.</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateIterT<span class="special">&gt;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a1e2aebcff5262696573b9e01a2466297"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">RateIterT</span> rate_first<span class="special">,</span> <span class="identifier">RateIterT</span> rate_last<span class="special">,</span> 
                                <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span> <span class="identifier">RateIterT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from the <span class="emphasis"><em>rate vector</em></span> parameter of the distribution and with equal phase probabilities.</p>
<p>The <span class="emphasis"><em>rate vector</em></span> parameter is given by the range defined by [<span class="emphasis"><em>rate_first</em></span>, <span class="emphasis"><em>rate_last</em></span>) iterator pair, and the <span class="emphasis"><em>phase probability vector</em></span> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> of the <span class="emphasis"><em>rate vector</em></span> and with each element set to <span class="inlinemediaobject"><img src="../../images/random//form_27.png"></span>).</p>
<p>

</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>The final <code class="computeroutput">disable_if</code> parameter is an implementation detail that differentiates between this two argument constructor and the range-based two argument constructor described above.</p></td></tr>
</table></div>
<p>
References:</p>
<div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>ISO, <span class="emphasis"><em>ISO/IEC 14882-2014: Information technology - Programming languages - C++</em></span>, 2014</p></li></ol></div>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">rate_first</code></span></p></td>
<td><p>The iterator to the beginning of the range of non-negative real elements representing the rates. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">rate_last</code></span></p></td>
<td><p>The iterator to the ending of the range of non-negative real elements representing the rates.</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">RateIterT</code></span></p></td>
<td><p>Must meet the requirements of <code class="computeroutput">InputIterator</code> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </p></td>
</tr></tbody>
</table></div></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RateRangeT<span class="special">&gt;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4848cda473fed3e6235b5a8f83054e0c"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">RateRangeT</span> <span class="keyword">const</span> <span class="special">&amp;</span> rate_range<span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a></code> from the "rates" parameters of the distribution and with equal phase probabilities.</p>
<p>The <span class="emphasis"><em>rate vector</em></span> parameter is given by the range defined by <span class="emphasis"><em>rate_range</em></span>, and the <span class="emphasis"><em>phase probability vector</em></span> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> of the <span class="emphasis"><em>rate vector</em></span> and with each element set to <span class="inlinemediaobject"><img src="../../images/random//form_27.png"></span>).</p>
<p>

</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">rate_range</code></span></p></td>
<td><p>The range of positive real elements representing the rates. </p></td>
</tr></tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">RateRangeT</code></span></p></td>
<td><p>Must meet the requirements of <a href="../../../../libs/range/doc/html/range/concepts.html" target="_top">Range</a> concept.</p></td>
</tr></tbody>
</table></div></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">explicit</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a2dcf3ad5944f38f3bb8c853525b4dd25"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="keyword">const</span> <span class="special">&amp;</span> param<span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from its parameters.</p>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">param</code></span></p></td>
<td><p>The parameters of the distribution. </p></td>
</tr></tbody>
</table></div></td>
</tr></tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aedbc4cec021842cbaf9c5c12433ad825"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> l1<span class="special">,</span> 
                              <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> l2<span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from the <span class="emphasis"><em>phase probability vector</em></span> and <span class="emphasis"><em>rate vector</em></span> parameters of the distribution.</p>
<p>The <span class="emphasis"><em>phase probability vector</em></span> parameter is given by the <span class="emphasis"><em>brace-init-list</em></span> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <span class="emphasis"><em>l1</em></span>, and the <span class="emphasis"><em>rate vector</em></span> parameter is given by the <span class="emphasis"><em>brace-init-list</em></span> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <span class="emphasis"><em>l2</em></span>.</p>
<p>
References:</p>
<div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>ISO, <span class="emphasis"><em>ISO/IEC 14882-2014: Information technology - Programming languages - C++</em></span>, 2014</p></li></ol></div>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">l1</code></span></p></td>
<td><p>The initializer list for inizializing the phase probability vector. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">l2</code></span></p></td>
<td><p>The initializer list for inizializing the rate vector.</p></td>
</tr>
</tbody>
</table></div></td>
</tr></tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a3ea25e56ee9e621f09be6deb284a6e92"></a><span class="identifier">hyperexponential_distribution</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> l1<span class="special">)</span><span class="special">;</span></pre>
<p>Constructs a <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from the <span class="emphasis"><em>rate vector</em></span> parameter of the distribution and with equal phase probabilities.</p>
<p>The <span class="emphasis"><em>rate vector</em></span> parameter is given by the <span class="emphasis"><em>brace-init-list</em></span> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <span class="emphasis"><em>l1</em></span>, and the <span class="emphasis"><em>phase probability vector</em></span> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <span class="inlinemediaobject"><img src="../../images/random//form_15.png"></span> of the <span class="emphasis"><em>rate vector</em></span> and with each element set to <span class="inlinemediaobject"><img src="../../images/random//form_27.png"></span>).</p>
<p>
References:</p>
<div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>ISO, <span class="emphasis"><em>ISO/IEC 14882-2014: Information technology - Programming languages - C++</em></span>, 2014</p></li></ol></div>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">l1</code></span></p></td>
<td><p>The initializer list for inizializing the rate vector.</p></td>
</tr></tbody>
</table></div></td>
</tr></tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG<span class="special">&gt;</span> <span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a87691d35ce91ee743ed144ee2e3b3879"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">URNG</span> <span class="special">&amp;</span> urng<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Gets a random variate distributed according to the hyperexponential distribution.</p>
<p>


</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">urng</code></span></p></td>
<td><p>A uniform random number generator object.</p></td>
</tr></tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">URNG</code></span></p></td>
<td><p>Must meet the requirements of  <a class="link" href="../../boost_random/reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">uniform random number generator</a> .</p></td>
</tr></tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Returns:</span></p></td>
<td><p>A random variate distributed according to the hyperexponential distribution. </p></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG<span class="special">&gt;</span> 
  <span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ab8cf131a35d675fe3837a17c4b70873b"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">URNG</span> <span class="special">&amp;</span> urng<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="special">&amp;</span> param<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Gets a random variate distributed according to the hyperexponential distribution with parameters specified by <code class="computeroutput">param</code>.</p>
<p>


</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">urng</code></span></p></td>
<td><p>A uniform random number generator object. </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">param</code></span></p></td>
<td><p>A distribution parameter object.</p></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">URNG</code></span></p></td>
<td><p>Must meet the requirements of  <a class="link" href="../../boost_random/reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">uniform random number generator</a> .</p></td>
</tr></tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Returns:</span></p></td>
<td><p>A random variate distributed according to the hyperexponential distribution. distribution with parameters specified by <code class="computeroutput">param</code>. </p></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a13e5b222112f26735031a8631a5b833b"></a><span class="identifier">num_phases</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the number of phases of the distribution. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae019614cc9cd91ec2dff306459289437"></a><span class="identifier">probabilities</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the <span class="emphasis"><em>phase probability vector</em></span> parameter of the distribution. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">RealT</span> <span class="special">&gt;</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a91e61293608aa905762ad27262cb48af"></a><span class="identifier">rates</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the <span class="emphasis"><em>rate vector</em></span> parameter of the distribution. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad274da384a55786719dd3ecab8967f84"></a><span class="identifier">min</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the smallest value that the distribution can produce. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">RealT</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae2b2e1ce0c3d4ce7ba36cfe49c9c6b88"></a><span class="identifier">max</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the largest value that the distribution can produce. </p>
</li>
<li class="listitem">
<pre class="literallayout"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a0ae4ddc40714698ef0f77af68e825914"></a><span class="identifier">param</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
<p>Returns the parameters of the distribution. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">void</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a9179d63f1a4b7cb8c2ef8f440e2c1c03"></a><span class="identifier">param</span><span class="special">(</span><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html" title="Class param_type">param_type</a> <span class="keyword">const</span> <span class="special">&amp;</span> param<span class="special">)</span><span class="special">;</span></pre>
<p>Sets the parameters of the distribution. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">void</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a64670d7145c552ae917e439054c51319"></a><span class="identifier">reset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
<p>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </p>
</li>
</ol></div>
</div>
<div class="refsect2">
<a name="id-1.3.32.5.6.18.3.4.11"></a><h3>
<a name="id-1_3_32_5_6_19_1_1_1_7-bb"></a><code class="computeroutput">hyperexponential_distribution</code> friend functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aa06dc41983022d0c078cf8524420d963"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span> 
             <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> hd<span class="special">)</span><span class="special">;</span></pre>
<p>Writes an <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> to a <code class="computeroutput">std::ostream</code>. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
  <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad02f9fcbccc124a8d9b3444166860641"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> 
             <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> hd<span class="special">)</span><span class="special">;</span></pre>
<p>Reads an <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> from a <code class="computeroutput">std::istream</code>. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">bool</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a6657878b0ad3c40bb3d25b4ff7da6c3b"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> lhs<span class="special">,</span> 
                <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
<p>Returns true if the two instances of <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> will return identical sequences of values given equal generators. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">bool</span> <a name="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a8ec524e4c493bb9376cf0df0898f6058"></a><span class="keyword">operator</span><span class="special">!=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> lhs<span class="special">,</span> 
                <span class="keyword">const</span> <a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a> <span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
<p>Returns true if the two instances of <code class="computeroutput"><a class="link" href="classboost_1_1random_1_1hyperexponential__distribution.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code> will return different sequences of values given equal generators. </p>
</li>
</ol></div>
</div>
</div>
</div>
<div class="copyright-footer">Copyright © 2000-2005 Jens Maurer<br>Copyright © 2009, 2010 Steven Watanabe<br>Copyright © 2022-2025 Matt
      Borland<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="classboost_1_1random_1_1geometric__distribution_1_1param__type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_random/reference.html#doxygen.headers.hyperexponential__distribution_8hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="classboost_1_1random_1_1hyperexponential__distribution_1_1param__type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
